package com.cn.gz.liwy.datatype;

import com.cn.gz.liwy.constan.StaticFinal;

import java.io.ByteArrayOutputStream;

public class MyByte extends DataTypeBase implements DataType{

    private byte byte8;

    private Byte aByte;

    public MyByte(){
        setTypeName("byte");
        setTypeSize(size());
        setTypeValueRange(valueRange());
        // byte转换为字符串  方法1
        setTypeDefaultVal(defaultValue());
        setTypePacketClass(packetClass());
        new MyByte(this);
        out("============"+getTypeName()+"类型使用规则"+"============");
        commonlyUsed();
        illegalUsed();
        out("==================华丽丽的分割线==================");
    }

    public MyByte (MyByte myByte){
//        将初始好的子类以参数的形式传到父类有参构造
        super(myByte);
    }

    @Override
    public int size() {
        return Byte.SIZE;
    }

    @Override
    public String valueRange() {
        return Byte.MIN_VALUE + "~" + Byte.MAX_VALUE;
    }

    @Override
    public String defaultValue() {
        return Byte.toString(byte8);
    }

    @Override
    public void commonlyUsed(){
        out(StaticFinal.ERROR+"byte类型用于在大型数组中节约空间，因为他只占用int类型的四分之一");
        byte b=1;
    }

    @Override
    public void illegalUsed(){
        out(StaticFinal.ERROR+"byte类型变量被分配了一个超过-128~127的整数");

        //例子：byte b = 210; 会报错
    }


    @Override
    public String packetClass() {
        return ""+Byte.class;
    }

}
